package com.t.bricks.bussiness.service.person;

import java.util.Date;

import com.t.bricks.bussiness.service.common.BaseService;
import com.t.bricks.model.MsgEmity;

/**
 * 人员信息Person表基本业务操作类接口定义
 */
public interface PersonService<T> extends BaseService<T> {

	/**
	 * 新增
	 * @param person 人员信息 对象实体,注意:跨包访问时可能会是json字符串
	 * @return
	 */
	MsgEmity add(Object person);

	/**
	 * 修改
	 * @param person 人员信息 对象实体,注意:跨包访问时可能会是json字符串
	 * @return
	 */
	MsgEmity edit(Object person);

	/**
	 * 停用
	 * @param sId
	 * @return
	 */
	MsgEmity stop(String sId);
	
	/**
	 * 启用
	 * @param sId
	 * @param dEndTime
	 * @return
	 */
	MsgEmity start(String sId, Date dEndTime);
	
	/**
	 * 根据部门编号查询员工
	 * @param sDeparmentId 部门编号
	 * @param iMainDeparment 仅限主部门
	 * @return
	 */
	MsgEmity findByDepartmentId(String sDeparmentId, Integer iMainDeparment);

//	/**
//	 * 查询人员姓名和id
//	 * @return
//	 */
//	MsgEmity findNameAndId();
//	
//	/**
//	 * 查询接收人(排除请假人本身)
//	 * @param map
//	 * @param orders
//	 * @param page
//	 * @return
//	 */
//	MsgEmity findByPageNoSelf(Map<String, Object> map, String orders, Page page);
//	
//	/**
//	 * 查询分页(未分配部门)
//	 * @param map
//	 * @param orders
//	 * @param page
//	 * @return
//	 */
//	MsgEmity findByPageNoAssignment(Map<String, Object> map, String orders, Page page);
//	
//	/**
//	 * 查询未分配部门的人员id
//	 * @param sDeparmentId
//	 * @return
//	 */
//	MsgEmity findByNoAllotsPersonId();
//	
//	/**
//	 * 查询已分配部门人员的部门信息
//	 * @param map
//	 * @param orders
//	 * @param page
//	 * @return
//	 */
//	MsgEmity findBySelect(Map<String, Object> map, String orders, Page page);
	
}
